<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Personal_exe( $this );

	class Personal_exe extends Exe
	{
		function Personal_exe( &$oModule )
			{
				$this->Exe( $oModule );
			}
		// MODIFICAR_UN_PERSONAL
		function update()
			{
				$oForm = $this->oModule->loadClass( 'Personal_frm' );
				// Convierte a variables los datos del Formulario asociado a la accion
				extract( $oForm->getFieldArray() );
				$ncPersona = $oForm->aFields['Persona']->aFields['ncPersona']->getValue();
				// Actualiza la Persona
					$this->oModule->setSubModule('entidades');
					$oPersonaExe = $this->oModule->loadClass( 'Persona_exe' );
					$oPersonaExe->update();
					$this->oModule->setSubModule('personal');
				// Modifica el Registro Personal
					$this->oDatabase->update("atPersonal",
									"dIngreso", $dIngreso,
									"nFicha", $nFicha,
									"cApellidoMaterno", $cApellidoMaterno,
									"cApellidoCasada", $cApellidoCasada,
									"ncNacionalidad", $ncNacionalidad,
									"ncGrupo", $ncGrupo,
									"ncEstadoCivil", $ncEstadoCivil,
									"WHERE",
									"ncPersona", $ncPersona );
			}
		// AGREGAR_UNA_PERSONA
		function insert()
			{
				// Convierte a variables los datos del Formulario asociado a la accion
				$oForm = $this->oModule->loadClass( 'Personal_frm' );
				// Agrega la Persona
					$this->oModule->setSubModule('entidades');
					$oPersonaExe = $this->oModule->loadClass( 'Persona_exe' );
					$ncPersona = $oPersonaExe->insert();
				if ( !$ncPersona )
				{
					addMessage("No se dio de alta la persona");
				} else {
					extract( $oForm->getFieldArray() );
					// Agrega el Usuario
						$cSql = "SELECT cNombre, cApellido
											FROM atPersona
											WHERE ncPersona = $ncPersona";
						list( $cNombre, $cApellido )  = $this->oDatabase->getArray($cSql);
						$cApellido = str_replace( " " , "", $cApellido );
						$cUsuario = substr( $cNombre, 0, 1 ) . $cApellido;
						$oModSeguridad =& loadModule('seguridad');
						$oModSeguridad->setSubModule('usuario');
						$oExe = $oModSeguridad->loadClass( 'Usuario_exe' );
						$ncUsuario = $oExe->add( $cUsuario, $ncPersona );
					// Agrega la Personal
						$this->oDatabase->insert("atPersonal",
										"ncUsuario", $ncUsuario,
										"dIngreso", $dIngreso,
										"nFicha", $nFicha,
										"cApellidoMaterno", $cApellidoMaterno,
										"cApellidoCasada", $cApellidoCasada,
										"ncNacionalidad", $ncNacionalidad,
										"ncGrupo", $ncGrupo,
										"ncEstadoCivil", $ncEstadoCivil,
										"bBaja", 0,
										"ncPersona", $ncPersona );
				}
			}
		// ELIMINAR_UNA_PERSONA
		function delete()
			{
				$ncPersona = getParam( 'ncPersona' );
				if ( $ncPersona )
				{
					$this->oDatabase->update( "atPersonal", "bBaja", 1, "WHERE", "ncPersona", $ncPersona);
					$oModSeguridad =& loadModule('seguridad');
					$oModSeguridad->setSubModule('usuario');
					$oExe = $oModSeguridad->loadClass( 'Usuario_exe' );
					$oExe->delete( $ncPersona );

					$this->oModule->setSubModule('entidades');
					$oExe = $this->oModule->loadClass( 'organizacion_persona_exe' );
					$oExe->delete( CODIGO_ORGANIZACION, $ncPersona );
				}
			}
	}
?>